/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.keggview.application.model.workflow.workflow.impl;

import com.keggview.application.datatypes.Alt;
import com.keggview.application.datatypes.Component;
import com.keggview.application.datatypes.Entry;
import com.keggview.application.datatypes.Graphics;
import com.keggview.application.datatypes.Pathway;
import com.keggview.application.datatypes.Product;
import com.keggview.application.datatypes.Reaction;
import com.keggview.application.datatypes.Relation;
import com.keggview.application.datatypes.Substrate;
import com.keggview.application.model.workflow.workflow.*;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class WorkflowFactoryImpl extends EFactoryImpl implements WorkflowFactory {
	/**
	 * Creates the default factory implementation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static WorkflowFactory init() {
		try {
			WorkflowFactory theWorkflowFactory = (WorkflowFactory)EPackage.Registry.INSTANCE.getEFactory("com.keggview.application.model.workflow"); 
			if (theWorkflowFactory != null) {
				return theWorkflowFactory;
			}
		}
		catch (Exception exception) {
			EcorePlugin.INSTANCE.log(exception);
		}
		return new WorkflowFactoryImpl();
	}

	/**
	 * Creates an instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkflowFactoryImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public EObject create(EClass eClass) {
		switch (eClass.getClassifierID()) {
			case WorkflowPackage.PATHWAY: return (EObject)createPathway();
			case WorkflowPackage.ENTRY: return (EObject)createEntry();
			case WorkflowPackage.ALT: return (EObject)createAlt();
			case WorkflowPackage.GRAPHICS: return (EObject)createGraphics();
			case WorkflowPackage.COMPONENT: return (EObject)createComponent();
			case WorkflowPackage.PRODUCT: return (EObject)createProduct();
			case WorkflowPackage.REACTION: return (EObject)createReaction();
			case WorkflowPackage.SUBSTRATE: return (EObject)createSubstrate();
			case WorkflowPackage.RELATION: return (EObject)createRelation();
			case WorkflowPackage.SUBTYPE: return createSubtype();
			default:
				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Subtype createSubtype() {
		SubtypeImpl subtype = new SubtypeImpl();
		return subtype;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public WorkflowPackage getWorkflowPackage() {
		return (WorkflowPackage)getEPackage();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @deprecated
	 * @generated
	 */
	@Deprecated
	public static WorkflowPackage getPackage() {
		return WorkflowPackage.eINSTANCE;
	}

	@Override
	public Alt createAlt() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Component createComponent() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Entry createEntry() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Graphics createGraphics() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Pathway createPathway() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Product createProduct() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Reaction createReaction() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Relation createRelation() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Substrate createSubstrate() {
		// TODO Auto-generated method stub
		return null;
	}

} //WorkflowFactoryImpl
